// Have include guard.
#ifndef FPK_DEADZONEFILTER_HPP
#define FPK_DEADZONEFILTER_HPP

#include "Filter.hpp"
#include "../Values/JoystickValue.hpp"
#include "../Values/TwoJoystickValue.hpp"

/**
 *  The DeadzoneFilter class is Filter that applies a deadzone to an input JoystickValue or TwoJoystickValue.
 */
class DeadzoneFilter :
	public Filter<JoystickValue>, public Filter<TwoJoystickValue>
{
	public:
		DeadzoneFilter(float deadzoneRadius);
		virtual ~DeadzoneFilter();
		
		virtual JoystickValue Apply(const JoystickValue &input) const;
		virtual TwoJoystickValue Apply(const TwoJoystickValue &input) const;
	private:
		float m_deadzoneRadius;
};

#endif // #ifndef FPK_DEADZONEFILTER_HPP
